import {
  getMultiData,getGoodsData
} from '../../service/home.js'

const types=["pop","new","sell"]
Page({

  /**
   * 页面的初始数据
   */
  data: {
    banners: [],
    recommends: [],
    titles: ['流行', '爆款', '精选'],
    currentType:'pop',
    isTabFixed:false,
    goods: {
      'pop': {
        page: 0,
        list: ["青春打底裤", "青春打底裤", "青春打底裤", "青春打底裤","青春打底裤"]
      },
      'new': {
        page: 0,
        list: ["运动服装", "运动服装", "运动服装", "运动服装","运动服装"]
      },
      'sell': {
        page: 0,
        list: ["精选卫衣", "精选卫衣", "精选卫衣", "精选卫衣","精选卫衣"]
      }
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    //1.请求轮播图以及推荐数据
    this._getMultiData()

    //请求商品数据
    this._getGoodsData('pop')
  },

  //--------------------网络请求函数--------------------------
  _getMultiData(){
    getMultiData().then(res => {
      //取出轮播图和推荐数据
      console.log(res)
      const banners = res.data.data.banner.list
      const recommends = res.data.data.recommend.list
      //将banners和recommends放在data中
      this.setData({
        banners,
        recommends
      })
    })
  },
  _getGoodsData(type) {
    //1.获取页码
    const page=this.data.goods[type].page+1
    //2.发送网络请求
    getGoodsData(type,page).then(res=>{
      console,log(res)
      //2.1.取出数据
      const list=res.data.data.list
      //2.2 将数据设置到对应type的list中
      const oldList=this.data.goods[type].list
      oldList.push(...list)

      //2.3将数据设置到data中的goods中
      const typeKey=`goods.${type}.list`
      const pageKey = `goods.${type}.page`
      this.setData({
        [typeKey]:oldList,
        [pageKey]: page
      })
    })
  },

  //-----------------事件监听函数-----------------------------
  handleTabClick(event) {
    // 1.取出index
    const index = event.detail.index
    //2.设置currentType
    const type=types[index]
    this.setData({
      currentType:type
    })

  },

  onReachBottom() {
    //上拉加载更多,请求更多的数据
    this._getGoodsData(this.data.currentType)
    console.log('页面刷新到底部')
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {
   setTimeout(()=>{
     wx.createSelectorQuery().select('#tab-control').boundingClientRect(rect => {
       console.log(rect)
       this.data.tabScrollTop=rect.top
     }).exec()
   },1000)

   //修改isTabFixed属性
   const flag2=scrollTop>=this.data.scrollTop
   if(flag2!=this.data.isTabFixed){
     this.setData({
       isTabFixed:flag2
     })
   }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})